home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Libraries / usr (gcc 1.37 libs) / mac / math.c < prev    next >
C/C++ Source or Header  |  1993-12-08  |  797b  |  45 lines

  1. #include "crtlocal.h"
  2.  
  3. /*   modf() returns the fractional part of value and  stores  the
  4.      integral  part  indirectly  through iptr.  Thus the argument
  5.      value and the returned values modf() and *iptr satisfy
  6.  
  7.           (*iptr + modf) == value
  8.  
  9.      and both results have the same sign as value.   The  defini-
  10.      tion  of modf() varies among UNIX system implementations, so
  11.      avoid modf() in portable code.
  12. */
  13.  
  14. double modf(double value, double *iptr)
  15.     {
  16.     long x = (int) value;
  17.     if (x >= 0)
  18.         {
  19.         if (value < (double)x) x--;
  20.         }
  21.     else
  22.         {
  23.         if (value > (double)x) x++;
  24.         }
  25.     *iptr = x;
  26.     return value - *iptr;
  27.     }
  28.  
  29. int isinf(double x)
  30.     {
  31.     return 0;
  32.     }
  33.     
  34. int isnan(double x)
  35.     {
  36.     return 0;
  37.     }
  38.  
  39. double ldexp(double x, int n)
  40.     {
  41.     while (n-- > 0) x *= 2;
  42.     while (++n < 0) x /= 2;
  43.     return x;
  44.     }
  45.